package org.iabako.shared.iservice.business;

import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
import org.iabako.shared.entity.business.Notification;
import org.iabako.shared.entity.business.NotificationConfig;
import org.iabako.shared.entity.enumeration.NotificationType;
import org.iabako.shared.entity.user.Enterprise;
import org.iabako.shared.entity.user.User;

import java.util.List;

/**
 * Created by jose on 13/03/15.
 */

@RemoteServiceRelativePath("iabakoServices/notificationService")
public interface NotificationService extends RemoteService {

    List<Notification> calculateNotifications(Enterprise enterprise);

    List<Notification> getNotifications(Enterprise enterprise);

    List<Notification> getUserSessionNotifications();

    List<Notification> getNotificationsByUser(User user);

    List<Notification> calculateNewNotifications(NotificationType[] notificationType);

    void hideNotification(Notification notification);

    void saveNotificationConfig(NotificationConfig entity);
}
